#include <bits/stdc++.h>

using namespace std;

//mine
class Solution1 {
public:
    int maxSubArray(vector<int>& nums) {
        int len=nums.size(),ans=nums[0],res=nums[0];
        for(int i=1;i<len;i++){
            if(res+nums[i]<nums[i]){
                res=nums[i];
            }else if(res<0){
                res=0;
            }else 
            {
                res+=nums[i];
            }
            ans=max(ans,res);
        }
        return ans;
    }
};
class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int len=nums.size(),ans=INT32_MIN,res=-1;
        for(int i=0;i<len;i++){
            if(res<0) res=nums[i];
            else res+=nums[i];
            if(ans <res){
                ans=res;
            }
        }
        return ans;
    }
};

int main(){
    vector<int> v={-2,1,-3,4,-1,2,1,-5,4};
    Solution s;
    cout << s.maxSubArray(v)<<endl;



    return 0;
}